package com.sh.data.engine.domain.normalization.standard.service;


import com.sh.data.engine.domain.base.model.PageResult;
import com.sh.data.engine.domain.normalization.standard.model.domain.*;
import com.sh.data.engine.domain.normalization.standard.model.param.DictionaryMappingDetailQueryParam;
import com.sh.data.engine.domain.normalization.standard.model.param.DictionaryQueryParam;
import com.sh.data.engine.domain.normalization.standard.model.param.MappingDetailParam;

import java.util.List;

/**
 * @author jingchen.hr
 */
public interface IDictionaryMappingService {
    /**
     * 字典映射列表查询
     *
     * @param param
     * @return
     */
    PageResult<DictionaryMappingDomain> listDictionaryMapping(DictionaryQueryParam param);

    /**
     * 字典映射详情查询
     *
     * @param param
     * @return
     */
    PageResult<DictionaryMappingDetailDomain> detailListDictionaryMapping(
        DictionaryMappingDetailQueryParam param);

    /**
     * 绑定或解绑映射详情
     *
     * @param param
     */
    void detailBound(MappingDetailParam param);

    /**
     * 映射报告类型信息
     *
     * @return
     */
    MappingReportInfoDomain reportInfo();

    List<GetDictionaryDomain> getDictionaryList(String dictNameEn, String dictNameCn);

    DictionaryStatisticsDomain statistics();

    /**
     * 统计数据
     */
    DictionaryPublishDomain dictionaryStatistics();

    /**
     * 表单检查统计
     */
    FormCheckDomain formCheckStatistics();

    /**
     * 字段检查统计
     */
    FieldCheckDomain fieldCheckStatistics();

    /**
     * 字段近七天占比趋势
     */

    List<DictionaryDomain> getMissMapping(Long projectId, List<DictionaryDomain> changedDics);
}
